5 X=1 10 IFREPEAT=.THENRE=1:ONXGOTO5000:GOTO4900 15 GOSUB5400 20 GOSUB265:POKE788,52:PRINTCHR$(142)CHR$(8) 25 OPEN8,8,8,"0:[160]FILES":GOSUB200:GOTO4000 50 IFPEEK(52)-PEEK(50)<3GOTO3200 60 RETURN 100 PRINT"[147]"; 105 PRINT:PRINTVT$(4)"[159]LAST NAME, FIRST:[151]":PRINTC2$ 110 PRINT" ,[151][157]"FI$(1);:IFFI$(2)<>""THENPRINT", "FI$(2)" "; 115 PRINT:X=LEN(FI$(1))+LEN(FI$(2))+1:IFX>MLTHENPRINTVTAB$(6);:GOSUB180 120 PRINT"[159]STREET:[151]":PRINTC1$:IFFI$(3)<>""THENPRINT" "FI$(3)" "; 125 PRINT:PRINT"[159]CITY, STATE, ZIP:[151]":PRINTC2$ 130 PRINT" "FI$(4);:IFFI$(4)="?"THENPRINT:GOTO145 135 IFFI$(5)<>""THENPRINT", "FI$(5);:IFFI$(6)<>""THENPRINT", "FI$(6)" "; 140 PRINT:X=LEN(FI$(4))+LEN(FI$(5))+LEN(FI$(6))+4:IFX>MLTHENPRINTVT$(11);:GOSUB180 145 PRINT"[159]PHONE:[151]":PRINTC1$:IFFI$(7)<>""THENPRINT" "FI$(7)" "; 150 PRINT:PRINT"[159]MAILING CODES:[151]":PRINTC1$:PRINT" "FI$(8)" "; 160 PRINT:PRINT"[159]NOTES:[151]":PRINTC2$:IFFI$(9)<>""THENPRINT" "FI$(9)" " 170 RETURN 180 PRINT",,,?"X-ML"[157] TOO MANY CHARACTERS FOR LABEL[151]":RETURN 200 INPUT#15,A,B$,C,D 210 IF(A<20)OR(A=50)OR(A=62)THENRETURN 220 IFA=70THENIFX<>70THENX=A:CLOSE8:OPEN8,8,8,"0:[160]FILES":GOTO200 230 GOTO3900 250 PRINTVTAB$(19)" PRESS SPACE TO SEARCH FURTHER " 255 PRINT"[159] F7[146] CORRECT OR ERASE RECORD " 260 PRINT"[159] F2[146] PRINT RECORD F8[146] PRINT A LABEL " 265 PRINTVTAB$(22)"[159] F1[146] OLD RECORD F3[146] NEW RECORD" 270 PRINT" F6[146] PRINT MAILING LIST F5[146] NOTES " 275 PRINT" F4[146] SORT/SAVE NEW ENTRIES [182]_[146][181]EXIT[151]"; 280 RETURN 284 IFHT<>1THENRETURN 285 PRINTVTAB$(19)"[159] PRESS SPACE TO SEARCH FURTHER ":RETURN 290 PRINTVTAB$(20)" F7[146] CORRECT RECORD [182]?[146][181]ERASE":RETURN 295 PRINTVTAB$(21)" [159][161]H[146][161]HELP WITH COMMAND MENU ":GOTO265 350 IFNU>MFTHENPRINT"[147]"VT$(19)"  FILE IS FULL - NO FURTHER ENTRIES [151]":RETURN 360 NU=NU+1:W=NU:HOLD=NU 370 A$=RIGHT$(STR$(1000+W),3) 380 IFLEN(FI$(1))>11THENINDEX$(HO)=FI$(1)+" "+"[139]"+FI$(6)+"[140]"+FI$(8)+A$:GOTO390 385 INDEX$(HO)=FI$(1)+" "+LEFT$(FI$(2),12-LEN(FI$(1)))+"[139]"+FI$(6)+"[140]"+FI$(8)+A$ 390 IFASC(IN$(HO))=32ORASC(IN$(HO))>90THENIN$(HO)="^"+A$:NF=NF+1:GOTO200 400 Z=.:GOSUB50:Z=INT(W/256):Y=W-(Z*256) 410 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1) 420 PRINT#8,FI$(1)R$FI$(2)R$FI$(3)R$FI$(4)R$FI$(5)R$FI$(6)R$FI$(7)R$FI$(8)R$FI$(9) 425 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1) 430 GOSUB200:IFX=70GOTO410 440 NF=NF+1:RETURN 450 Z=INT(W/256):Y=W-(Z*256):GOSUB50 460 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1) 470 INPUT#8,FI$(1),FI$(2),FI$(3),FI$(4),FI$(5),FI$(6),FI$(7),FI$(8),FI$(9) 480 GOSUB200:IFX=70THENX=.:GOTO460 490 RETURN 500 GOSUB50:OPEN1,0 510 PRINT:PRINTVTAB$(5)TAB(3); 520 INPUT#1,FIELD$(1),FI$(2):IFPEEK(214)<>4GOTO510 525 IFFI$(1)=""THENCLOSE1:FORX=1TO9:FI$(X)="":NEXT:GOSUB100:HT=1:RETURN 530 IFFI$(2)=""THENGOSUB950:IFFI$(2)=""THENPRINTVTAB$(5)"?? "FI$(1)", ?":GOTO510 540 PRINT:PRINTVTAB$(8)TAB(3); 550 INPUT#1,FI$(3):IFPEEK(214)<>7GOTO540 560 IFFI$(3)="? "ORFI$(3)="?"GOTO625 565 IFLEN(FI$(3))>MLTHENFI$(3)=LEFT$(FI$(3),ML):GOSUB100:GOTO540 570 PRINT:PRINTVTAB$(10)TAB(3); 580 INPUT#1,FI$(4),FI$(5),FI$(6):IFPEEK(214)<>9GOTO570 585 IFFI$(4)="?"ORFI$(4)=""GOTO625 590 IFFI$(6)<>""THENA=6:GOSUB845 595 IFFI$(5)=""THENIFFI$(6)=""THENA=4:GOSUB845:GOSUB865:GOSUB805:GOTO610 600 IFFI$(6)=""THENA=5:GOSUB845:GOSUB865:IFFI$(5)<>""THENGOSUB830 605 IFFI$(5)=""THENGOSUB800 610 IFFI$(5)=""ORFI$(6)=""THENPRINTVTAB$(10)"?":GOTO570 620 IFZ<>ATHENIFFI$(6)<>"? "THENIFLEN(FI$(6))<5THENPRINTVT$(10)"??":Z=A:GOTO570 625 PRINT:PRINTVTAB$(13)TAB(3); 630 INPUT#1,FI$(7):IFPEEK(214)<>12GOTO625 645 PRINT:PRINTVTAB$(15)TAB(3); 650 INPUT#1,FI$(8):IFPEEK(214)<>14GOTO645 655 PRINT:PRINTVTAB$(17)TAB(3); 660 INPUT#1,FI$(9):IFPEEK(214)<>16THENIFPEEK(214)<>17THENPRINT:PRINTVT$(19)CL$:GOTO655 665 FORA=1TO9:GOSUB845:IFFI$(A)=""THENFI$(A)="?" 670 NEXT 675 Y=0:FORX=1TO9:Y=Y+LEN(FI$(X)):NEXT:Z=LEN(FI$(9)) 680 IFZ<(Y+9-LG)THENPRINTVT$(20)"  FILE TOO LONG [151][146] ":GOTO510 685 IFLG<(Y+9)THENFI$(9)=LEFT$(FI$(9),Z+LG-Y-9):GOSUB100:GOTO655 690 GOSUB105 695 PRINT:CLOSE1 700 GOSUB290:GOSUB260:IFHT=1THENGOSUB285 710 GETC$:IFC$GOTO710 720 GETC$:IFC$=""GOTO720 730 IFC$="[137]"THENGOSUB2250:GOSUB2200:GOSUB290:GOSUB260:GOSUB284:GOTO710 740 IFC$="[140]"THENGOSUB2250:OPEN4,4:GOSUB2000:CLOSE4:GOSUB290:GOSUB260:GOSUB284:GOTO710 750 IFC$="[136]"THENGOSUB100:GOTO500 760 IFC$="?"THENFORX=1TO9:FI$(X)="":NEXT:RETURN 770 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO720 780 IFC$<>" "THENIFC$<>"_"THENIFASC(C$)<133ORASC(C$)>140GOTO720 790 RETURN 800 A=4:GOSUB845 805 IFFI$(4)=""THENRETURN 810 Y=LEN(FI$(4)):FORX=YTO1STEP-1:FT$=MID$(FI$(4),X,1) 815 IFFT$=" "THENFI$(5)=RIGHT$(FI$(4),Y-X):FI$(4)=LEFT$(FI$(4),X-1):GOTO830 820 NEXT:PRINT:PRINTVTAB$(10)TAB(3)FI$(4)", "FI$(6):RETURN 830 A=4:GOSUB845 840 PRINT:PRINTVT$(10)C1$:PRINTVTAB$(10)TAB(3)FI$(4)", "FI$(5)", "FI$(6):RETURN 845 FQ$=FI$(A) 850 Y=LEN(FQ$):IFY=.THENRETURN 855 FORX=YTO1STEP-1:FT$=MID$(FQ$,X,1):IFFT$=" "THENNEXT 860 FQ$=LEFT$(FQ$,X):FI$(A)=FQ$:RETURN 865 IFX=.THENRETURN 870 W=.:FORY=XTO1STEP-1:FT$=MID$(FQ$,Y,1):W=(W+1)*(1+(ASC(FT$)>47ANDASC(FT$)<58)) 875 IFW=2THENIFY=1THENY=2:W=4 880 IFW=3THENY=Y+2+(MID$(FQ$,Y+1,1)=" ") 885 IFW<3THENNEXTY 890 FI$(6)=MID$(FQ$,Y+1):IFY.THENIFMID$(FQ$,Y,1)=" "THENY=Y-1:GOTO895 900 FI$(A)=LEFT$(FQ$,Y):RETURN 950 Y=LEN(FI$(1)):FORX=YTO1STEP-1:FT$=MID$(FI$(1),X,1):IFFT$=" "THENNEXT 955 FI$(1)=LEFT$(FI$(1),X) 960 Y=LEN(FI$(1)):FORX=YTO1STEP-1:FT$=MID$(FI$(1),X,1) 970 IFFT$=" "THENFI$(2)=LEFT$(FI$(1),X-1):FI$(1)=RIGHT$(FI$(1),Y-X):GOTO990 980 NEXT 990 PRINT:PRINTVTAB$(5)TAB(3)FI$(1)", "FI$(2):RETURN 1000 FORZ=0TO9:FI$(Z)="":NEXT 1005 PRINT"[147]":PRINTTAB(11)"ENTER NAME SOUGHT":GOSUB105 1010 PRINTVTAB$(19)" *[146] DISPLAY ENTIRE LIST" 1015 PRINT" ADD A LETTER TO BEGIN AFTER A 1020 [153]:[153]" ^WAIT VIEW ERASED RECORDS" 1025 [153]" TO RETRIEVE - PRESS F7WAITPOKE 1040 GOSUB50:OPEN1,0 1045 PRINT:PRINTVTAB$(5)TAB(3); 1050 INPUT#1,FIELD$(1),FI$(2):IFPEEK(214)<>4THENIFPEEK(214)<>5GOTO1045 1055 CLOSE1 1060 IFFI$(1)=""THENC$="":FORX=1TO9:FI$(X)="":GOSUB100:GOTO295 1070 PRINT""CL$:IFFI$(2)=""THENGOSUB950:GOTO1120 1080 Y=LEN(FI$(2)):FORX=YTO1STEP-1:FT$=MID$(FI$(2),X,1):IFFT$=" "THENNEXT 1100 FI$(2)=LEFT$(FI$(2),X) 1110 IFFI$(2)="?"ORFI$(2)="*"THENFI$(2)="" 1120 F1$=FI$(1):F2$=FI$(2):IFFI$(2)<>""THENFI$(2)=" "+FI$(2) 1125 IFMID$(FI$(1),2,1)="*"THENFI$(1)="*"+LEFT$(FI$(1),1) 1130 SEEK$=LEFT$((FI$(1)+FI$(2)),13):IFLEN(FI$(1))>12THENSE$=FI$(1) 1135 LN=LEN(SE$) 1140 IFLEFT$(SE$,1)="*"THENFI$(0)="*":SE$=MID$(SE$,2,1):LN=1:IFSE$=""THENSE$="A" 1145 X=1:Y=INT(NU/2):IFFI$(0)="*"GOTO1160 1150 IFSE$>IN$(Y)THENX=Y:IFSE$>IN$(Y/2+Y)THENX=INT(Y/2+Y) 1155 IFX=1THENIFSE$>IN$(Y/2)THENX=INT(Y/2) 1160 X=X-(X=.):W=.:FOR HOLD=XTONU 1165 IFLEN(IN$(HO))=4THENIFSE$<>"^"THENNEXT:GOTO1300 1170 IFFI$(0)="*"THENIFASC(SE$)LEFT$(IN$(HO),LN)THENNEXT:GOTO1300 1190 W=VAL(RIGHT$(IN$(HO),3)):GOSUB450:GOSUB105:GOSUB250 1200 GETC$:IFC$GOTO1200 1210 GETC$:IFC$=""GOTO1210 1220 IFC$="[136]"THENHT=1:PRINT"[147]":GOSUB100:GOSUB500:GOSUB100:GOSUB370:GOSUB250:HT=. 1230 IFC$=" "THENNEXT:GOTO1300 1240 IFC$="[137]"THENGOSUB2250:GOSUB2200:GOSUB250:GOTO1200 1250 IFC$="[140]"THENGOSUB2250:OPEN4,4:GOSUB2000:CLOSE4:GOSUB250:GOTO1200 1260 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO1210 1270 IFASC(C$)<133ORASC(C$)>140THENIFC$<>"_"GOTO1210 1280 HO=NU:NEXT:GOTO1300 1300 IFW=.GOTO1350 1310 FI$(1)=F1$:FI$(2)=F2$:FORX=3TO9:FI$(X)="":NEXT:GOSUB105 1320 PRINTVTAB$(19)CL$ 1330 PRINT" NO FURTHER MATCH "; 1340 GOSUB295:RETURN 1350 PRINT""CL$:PRINTVTAB$(19)CL$ 1360 PRINTVTAB$(20)" NO SUCH RECORD ":GOSUB295 1370 C$="":RETURN 2000 IFFI$(4)="?"THENRETURN 2010 IFASC(FI$(1))<91THENPRINT#4,""SPC(LM);:IFFI$(2)<>"?"THENPRINT#4,FI$(2)" "; 2020 IFASC(FI$(1))<91THENPRINT#4,FI$(1) 2030 PRINT#4,""SPC(LM)FI$(3) 2040 PRINT#4,""SPC(LM)FI$(4)", "FI$(5)" "FI$(6) 2050 PRINT#4,R$,R$,R$; 2060 IFASC(FI$(1))>90THENPRINT#4,R$; 2070 RETURN 2100 IFFI$(4)="?"THENRETURN 2105 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(1)))) 2110 IFFI$(2)<>"?"THENLA$(1)=LA$(1)+A$+FI$(2)+" "+FI$(1) 2115 IFFI$(2)="?"THENLA$(1)=LA$(1)+A$+FI$(1) 2120 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(2)))) 2125 LA$(2)=LA$(2)+A$+FI$(3) 2130 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(3)))) 2135 LA$(3)=LA$(3)+A$+FI$(4)+", "+FI$(5)+" "+FI$(6) 2140 LC=LC+1:IFLC"?"THENPRINT#4,FI$(3)", "FI$(4)", "FI$(5)" "FI$(6); 2220 IFFI$(8)<>"?"THENPRINT#4," ("FI$(8)")"; 2225 PRINT#4,R$SPC(LM); 2230 IFFI$(9)<>"?"THENPRINT#4,"NOTE: "FI$(9) 2240 PRINT#4,R$;:IFC$="[137]"THENCLOSE4 2245 RETURN 2250 OPEN1,0:PRINTVTAB$(19)CL$ 2255 PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:LM$=MID$(STR$(LM),2) 2260 PRINTVTAB$(20)"LEFT MARGIN: (0 TO"MM" SPACES)[151]":PRINTLM$ 2265 PRINTVTAB$(20) 2270 INPUT#1,LM$:IFPEEK(214)<>20THENPRINTVT$(20);:GOTO2255 2275 CLOSE1 2280 IFLM$THENIFASC(LM$)<58THENIFASC(LM$)>47THENLM=VAL(LM$):IFLM>MMTHENLM=MM 2285 LM$=MID$(STR$(LM),2):PRINTVTAB$(21)CL$:PRINT"[145]"LM$"[159]" 2290 RETURN 2300 PRINT"[147] * MAIL LIST PRINT OPTIONS * " 2310 PRINT:PRINT"PRINT ENTIRE LIST: (Y OR N)":PRINT"Y" 2320 PRINT"PRINT LIST BEGINNING WITH: (LETTER)":PRINT"A" 2330 PRINT"PRINT ONLY NAMES WITH THESE CODES:" 2340 PRINT:PRINT"DO NOT PRINT NAMES WITH THESE CODES:" 2350 PRINT:PRINT"PRINT ONLY THIS ZIP CODE:" 2360 PRINT"(ALL OR ONLY FIRST PART)" 2370 PRINT:PRINT"DO NOT PRINT THIS ZIP CODE:" 2380 PRINT"(ALL OR ONLY FIRST PART)" 2390 PRINT:PRINT"LABEL FORMAT: (1 OR 2 ACROSS) FILE: (0)":PRINT"[151]1" 2400 GOSUB50:OPEN1,0 2405 PRINTVTAB$(4)"[151]" 2407 INPUT#1,C$:IFPEEK(214)<>4GOTO2405 2410 P1=.:C$=LEFT$(C$,1):IFC$="Y"THENP1=1:PRINTVTAB$(5)C$ 2415 IFP1THENP2$="A":GOTO2470 2417 IFC$<>"Y"THENIFC$<>"N"THENC$="":CLOSE1:GOSUB3600:GOTO2650 2420 PRINTVTAB$(6) 2422 INPUT#1,P2$:IFPEEK(214)<>6GOTO2420 2425 P2$=LEFT$(P2$,1):IFP2$=""THENP2$="A" 2427 PRINTVTAB$(7)P2$ 2430 PRINTVTAB$(8) 2435 INPUT#1,PY$:IFPEEK(214)<>8GOTO2430 2440 PRINTVTAB$(10) 2445 INPUT#1,PN$:IFPEEK(214)<>10GOTO2440 2450 PRINTVTAB$(13) 2455 INPUT#1,ZY$:IFPEEK(214)<>13GOTO2450 2460 PRINTVTAB$(16) 2465 INPUT#1,ZN$:IFPEEK(214)<>16GOTO2460 2470 PRINTVTAB$(18) 2471 INPUT#1,LABEL$:IFPEEK(214)<>18GOTO2470 2472 LA$=LEFT$(LA$,1):IFLA$<>"2"THENIFLA$<>"0"THENLA$="1" 2473 LABEL=VAL(LA$):LCOUNT=. 2474 PRINTVTAB$(19)LA$:LA=LA-3*(LA=0) 2475 GOSUB2255 2480 PRINTVTAB$(20)" PRESS F7[146] TO CORRECT ENTRIES " 2485 PRINT" PRESS SPACE TO BEGIN PRINTING":GOSUB265 2490 GETC$:IFC$=""GOTO2490 2491 IFC$="[136]"THENPRINTVT$(20)CL$:PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:GOTO2400 2492 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO2490 2493 IFASC(C$)>132ANDASC(C$)<141ORC$="_"THENPRINT"[147]":GOTO2650 2494 IFC$<>" "GOTO2480 2495 PRINTVTAB$(20)" PRESS RUN/STOP KEY TO END PRINT OUT [151]" 2497 PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$ 2500 OPEN4,4:FORHO=1TONUMBER:IFASC(P2$)=LEFT$(FI$(6),LEN(ZY$))GOTO2620 2550 IFPY$=""GOTO2575 2555 IFFI$(8)="?"GOTO2620 2560 FORX=1TOLEN(PY$):FORY=1TOLEN(FI$(8)) 2565 IFMID$(PY$,X,1)=MID$(FI$(8),Y,1)GOTO2575 2570 NEXT:NEXT:GOTO2620 2575 IFPN$=""ORFI$(8)="?"GOTO2600 2580 FORX=1TOLEN(PN$):FORY=1TOLEN(FI$(8)) 2585 IFMID$(PN$,X,1)=MID$(FI$(8),Y,1)GOTO2620 2590 NEXT:NEXT 2600 IFPEEK(197)=63THENHO=NU:NEXT:GOTO2645 2610 W=VAL(RIGHT$(IN$(HO),3)):GOSUB450:ONLAGOSUB2000,2100,2205 2620 IFPEEK(197)=63THENHO=NU:NEXT:GOTO2645 2630 NEXTHOLD 2635 IFLA$(1)<>""THENGOSUB2150 2640 PRINTVTAB$(20)" NO FURTHER ENTRIES. " 2645 C$="":CLOSE4 2650 GOTO295 3000 FORZ=1TO9:FI$(Z)="":NEXT 3010 PRINT"[147]"TAB(11)"ENTER NEW RECORD[151]" 3020 GOSUB105:GOSUB500:IFHT=1THENHT=.:C$="":GOTO295 3030 IFFI$(1)=""THENC$="[134]":RETURN 3040 HO=NU+1:FORX=NUTO1STEP-1 3050 IFLEN(IN$(X))>4THENHO=X+1:X=.:A$=RIGHT$(IN$(HO),3):W=VAL(A$) 3060 NEXT 3070 IFHO<=NUTHENGOSUB380 3080 IFHO>NUTHENGOSUB350 3085 IFC$<>" "THENRETURN 3090 PRINTVTAB$(20)" PRESS F3[146] TO ENTER ANOTHER NAME[151] " 3100 PRINTCL$ 3110 GOTO265 3200 PRINT" SORRY, DELAY IS TO CLEAR MEMORY SPACE" 3210 CLOSE8:IFNF=.THENGOTO3250 3220 SYS49350,NU,IN$(1):OPEN2,8,2,"@0:[160]INDEX,S,W":GOSUB200 3230 PRINT#2,NUMBER:GOSUB200 3240 FORX=1TONUMBER:PRINT#2,INDEX$(X):NEXT:GOSUB200:CLOSE2:NF=.:GOSUB200 3250 FORX=1TONU:IN$(X)="":NEXT:FORX=1TO25:VT$(X)="":NEXT 3260 IFZTHENFORX=0TO9:FI$(X)="":NEXT:C$="" 3270 A$="":B$="":C1$="":C2$="":FT$="":FQ$="":CL$="":R$="" 3280 X=FRE(0) 3290 GOSUB5350 3300 OPEN2,8,2,"0:[160]INDEX,S,R":GOSUB200 3310 INPUT#2,NUMBER 3320 FORX=1TONUMBER:IF ST THEN CLOSE2:GOTO3340 3330 INPUT#2,INDEX$(X):NEXT 3340 CLOSE2:GOSUB200 3350 OPEN8,8,8,"0:[160]FILES":GOSUB200:PRINT""CL$:RETURN 3500 PRINT"[147]"VTAB$(8)TAB(2)"SORTING[160]AND SAVING - PLEASE WAIT..." 3510 IFNFTHENSYS49350,NU,IN$(1) 3520 Y=0:FOR X=NUTO1STEP-1:IFLEN(IN$(X))=4THENY=Y+1:NEXT 3525 IFX>.THENX=.:NEXT 3530 PRINTVTAB$(12)TAB(10)"THERE ARE"NU-Y"RECORDS" 3535 CLOSE8:IFNF=.THEN3590 3540 PRINT:PRINTTAB(9)NF"CHANGED OR ADDED 3550 NF[178].:[159]2,8,2,"@0:CLOSEINDEX,S,W" 3560 [141]200:[152]2,NUMBER:[141]200 3570 [129]X[178]1[164]NUMBER:[152]2,INDEX$(X):[130]:[141]200 3580 [160]2:[141]200 3590 [139]NS[167][158]49155:[141]200 3595 NS[178].:[159]8,8,8,"0:CLOSEFILES":[141]200 3600 [153]""VTAB$(20)[163]13)"PLEASE PROCEED":[142] 3900 [139]NU[179][177].[167][139][194](49686)[178]96[167][139][194](788)[178]52[167]C[178][171]1 3910 [160]8:[158]65511:[139]C[179][177][171]1[167][153][199](9):[151]788,49:[128] 3920 [153]"LOAD"VTAB$(10)A," "B$:[153] 3930 [153]" DO YOU HAVE NEW ENTRIES TO SAVE?":[153] 3940 [153]" IF SO, CORRECT DISK ERROR THEN PRESS":[153] 3950 [153][163]15)"SPACE BAR 3960 GETC$:IFC$=""GOTO3960 3970 IFC$<>" "THENC=.:GOTO3910 3980 OPEN15,8,15:GOSUB3500:C=.:GOTO3910 4000 GETC$ 4010 IFC$=""GOTO4000 4020 IFC$="[133]"THENGOSUB1000:GOTO4010 4030 IF C$="[134]"THEN GOSUB3000:GOTO4010 4040 IFC$="[138]"THENGOSUB3500:GOSUB295:GOTO4000 4050 IFC$="[139]"THENGOSUB2300:GOTO4010 4060 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO4000 4070 IF C$="_"THENGOSUB3500:GOTO3910 4080 IFC$="H"THENPRINT"[147]":GOSUB5020:GOSUB5400:GOSUB265:GOTO4000 4090 GOTO4000 4900 PRINT"[147]"CHR$(142):POKE53280,3:POKE53281,1 4905 PRINT" * GEMINI 10X/15X TYPE STYLE CONTROL * 4910 [153]:[153]"CHOOSE THE TYPE STYLE YOU WISH: 4915 PRINT:PRINT" 1 STANDARD STYLE, NORMAL DENSITY 4920 [153]" 2 STANDARD STYLE, EMPHASIZED DENSITY 4925 PRINT" 3 ITALIC STYLE, NORMAL DENSITY 4930 [153]" 4 ITALIC STYLE, EMPHASIZED DENSITY 4935 PRINT:PRINT"ENTER A NUMBER FROM 1 TO 4":PRINT"PRESS RETURN KEY 4940 [153]:[153]"POKE1CMD"; 4945 A$[178]"A":[159]1,0:[132]1,A$:[160]1 4950 X[178]1:[139]A$[167][139][198](A$)[177]49[167][139][198](A$)[179]53[167]X[178][197](A$) 4960 [159]4,4:[152]4,[199](27)"@";:[145]X[137]4990,4970,4980,4970 4970 [152]4,[199](27)"E";:[139]X[178]2[137]4990 4980 [152]4,[199](27)[199](52); 4990 [160]4 5000 [153]"LOAD"[199](142):[151]53280,3:[151]53281,1:[141]5020:[137]5095 5020 [153][163]12)"* ADDRESS FILE * 5025 PRINT" TO RETRIEVE A RECORD, PRESS F1[146] AND 5030 [153]" ENTER ALL OR PART OF A NAME. 5035 PRINT:PRINT" IF YOU ENTER PART OF A NAME, 5040 [153]" THE PROGRAM WILL FIND ALL MATCHES. 5045 PRINT:PRINT" TO ADD A NEW RECORD, PRESS F3[146] 5050 [153]:[153]" THE PROGRAM WILL RECOGNIZE MOST 5055 PRINT" NAMES IN FIRST NAME LAST NAME ORDER. 5060 [153]:[153]" PRESS RETURNWAIT KEY - NOT CRSRWAIT KEY 5070 PRINT" FOR EACH LINE ENTERED AND TO MOVE 5075 [153]" DOWN FOR CORRECTIONS. 5080 PRINT:PRINT" PRESS F5[146] TO VIEW AND WRITE TO NOTE 5085 [153]" PAGE SCREEN. THIS SCREEN IS SAVED 5090 PRINT" WITH THE ADDRESS FILES.":RETURN 5095 PRINT:PRINTTAB(11)"PLEASE WAIT... 5100 [134] VTAB$(25):[141]5350:[134] INDEX$(MF) 5200 [159]15,8,15,"I0" 5210 [159]2,8,2,"0:CLOSEINDEX,S,R":[141]200 5220 [139]A[179][177]62[137]5250 5230 [160]2:NUMBER[178].:[137]10000 5250 [132]2,NUMBER 5260 [129]X[178]1[164]NUMBER:[139] ST [167] [160]2:[137]5300 5270 [132]2,INDEX$(X):[130] 5280 [160]2 5300 [147]"CLOSE(ML)/NOTES/SORT",8,1 5310 [137]15 5350 VT$(1)[178]"":[129]X[178]2[164]25:VT$(X)[178]VT$(X[171]1)[170]"":[130] 5360 A$[178]" ?":B$[178]",,,,,,,,,,,,,,,,,,,,,,,,":C1$[178]A$[170]B$[170]" POKEON" 5370 C2$[178]A$[170]B$[170]B$[170]" POKEONON" 5380 CL$[178]" " 5390 R$[178][199](13):ML[178]34:MM[178]80[171]ML:MF[178]700:LG[178]150:DS[178]36:[142] 5400 [153]VTAB$(23)[163]7)"PRESS SPACE TO CONTINUE 5410 GET C$:IF C$GOTO5410 5420 GET C$:IF C$=""GOTO5420 5430 PRINT"[147]"TAB(10)"* PRINT FACILITIES * 5435 [153]:[153]" 'MAILING CODE' MAY BE ANY NUMBER 5436 PRINT" OF LETTERS OR NUMBERS TO BE KEYED 5437 [153]" INDIVIDUALLY. THEY CONTROL WHICH 5438 PRINT" LABELS ARE PRINTED FROM THE FILES. 5440 [153]:[153]" PRESS F6WAIT FOR MAILING LIST PRINT OUT. 5450 PRINT:PRINT" F8[146] PRINTS A SINGLE NAME AND ADDRESS 5460 [153]" LABEL AND F2WAIT PRINTS A SINGLE RECORD. 5465 PRINT:PRINT" PRESS F4[146] AFTER ALL NEW NAMES ARE 5470 [153]" ENTERED AND BEFORE PRINTING A LIST 5475 PRINT" TO ALPHABETIZE NAMES AND ADD THEM 5480 [153]" PERMANENTLY TO THE FILES ALONG WITH 5485 PRINT" NEW NOTE PAGE ENTRIES. THE[170]_[146][180]KEY 5490 [153]" ALSO DOES THIS AND EXITS PROGRAM. 5495 PRINT:PRINT" MENU WILL APPEAR HERE:[182]H[146][181]TO REVIEW 6000 [142] 9000 [153]"LOAD"VTAB$(8)" WRONG DISK! THIS SHORTENED VERSION OF 9010 PRINT:PRINT" ADDRESS BOOK BY FRANK VAN DEVENTER 9020 [153]:[153]" REQUIRES PREVIOUSLY ESTABLISHED 9030 PRINT:PRINT" DISK FILES TO WORK.":END 10000 IFPEEK(46)<70GOTO9000 10005 PRINT" NEW DISK FILE - 5 MIN SETUP TIME 10010 Z[178][181](MF[173]256):Y[178]MF[171](Z[172]256) 10015 [151]788,52:[159]8,8,8,"0:CLOSEFILES,L,"[170][199](LG):[141]200 10020 [152]15,"P"[199](8)[199](Y)[199](Z)[199](1):[141]200 10030 [139]A[178]50[167][152]8,LG:[137]10020 10040 [160]8:[141]49000 10050 [151]56576,197:[151]648,188:[151]53272,245 10060 [153]"LOAD"VTAB$(24)[163]3)"NOTES - PRESS RETURNWAIT KEY TO RETURN"; 10070 [158]49155:[151]56576,199:[151]648,4:[151]53272,21 10080 NU[178]1:IN$(1)[178]"^001":[141]3550:[160]8:[141]5430:[137]20 49000 Y[178]49152:[139][194](49686)[178]96[167][142] 49010 [135]X:[139]X[179].[167][142] 49020 [151]Y,X:Y[178]Y[170]1:[137]49010 50000 [131]76,68,192,169,5,162,8,160,1,32,186,255,169,19,162,49,160,192,32,189 50010 [131]255,169,0,133,251,169,188,133,252,165,1,72,41,254,133,1,169,251,162 50020 [131]27,160,194,32,216,255,104,133,1,96,64,48,58,160,40,77,76,41,47,78,79 50030 [131]84,69,83,47,83,79,82,84,162,0,189,0,216,157,0,168,189,0,217,157,0,169 50040 [131]189,0,218,157,0,170,189,0,219,157,0,171,232,208,229,169,197,141,0,221 50050 [131]169,188,141,136,2,133,210,169,245,141,24,208,173,134,2,162,0,157,0 50060 [131]216,157,0,217,157,0,218,157,0,219,232,208,241,165,1,72,41,254,133,1 50070 [131]32,207,255,162,0,134,212,134,216,189,0,168,157,0,216,189,0,169,157 50080 [131]0,217,189,0,170,157,0,218,189,0,171,157,0,219,232,208,229,104,133,1 50090 [131]169,21,141,24,208,169,4,141,136,2,133,210,169,199,141,0,221,96,32,253 50100 [131]174,32,158,173,32,247,183,165,20,133,253,165,21,133,254,32,253,174 50110 [131]32,158,173,162,1,165,71,157,27,194,157,67,194,165,72,157,47,194,157 50120 [131]87,194,165,253,208,2,198,254,198,253,160,3,24,189,67,194,101,253,157 50130 [131]67,194,189,87,194,101,254,157,87,194,136,208,236,189,27,194,133,80 50140 [131]189,47,194,133,81,189,67,194,133,82,189,87,194,133,83,32,219,193,144 50150 [131]4,202,208,228,96,165,82,133,78,165,83,133,79,160,2,177,78,153,250,0 50160 [131]136,16,248,48,11,24,165,80,105,3,133,80,144,2,230,81,160,2,177,80,153 50170 [131]247,0,136,16,248,32,230,193,144,230,56,165,82,233,3,133,82,176,2,198 50180 [131]83,32,219,193,176,31,160,2,177,82,153,247,0,136,16,248,32,230,193,176 50190 [131]225,160,2,177,80,145,82,185,247,0,145,80,136,16,244,48,183,160,2,177 50200 [131]80,145,78,185,250,0,145,80,136,16,244,24,189,27,194,125,67,194,133 50210 [131]82,189,47,194,125,87,194,133,83,102,83,102,82,32,219,193,176,22,189 50220 [131]27,194,157,28,194,189,47,194,157,48,194,32,251,193,232,32,11,194,76 50230 [131]13,193,189,67,194,157,68,194,189,87,194,157,88,194,32,11,194,232,32 50240 [131]251,193,76,13,193,165,81,197,83,208,4,165,80,197,82,96,160,255,200 50250 [131]196,247,176,11,196,250,176,6,177,248,209,251,240,241,96,196,250,96 50260 [131]24,165,80,105,3,157,27,194,165,81,105,0,157,47,194,96,56,165,80,233 50270 [131]3,157,67,194,165,81,233,0,157,87,194,96,-1 50500 X[178][194](43)[170][194](44)[172]256:C[178]10001 50510 A[178][194](X):B[178][194](X[170]1):X[178]A[170]256[172]B:[139][194](X[170]2)[170]256[172][194](X[170]3)[179]C[137]50510 50520 A[178]A[170]2:[139]A[177]255[167]A[178]A[171]256:B[178]B[170]1 50530 [151]X,0:[151]X[170]1,0:[153]"LOADP(null)45,"A":P(null)46,"B":C(null):?CLEFT$(147)":[151]631,13:[151]198,1:[128] 50599 LOCATI[145] [129] [143] STATEMENTS BELOW IS THE NUMBER AFTER HASH MARK EG: /9 50600 [173]9 [143] INTRO SCREENS/INNITIALIZE/LOAD NOTES $ INDEX/POKE DISABLES STOP KEY 50605 [173]49 [143] CHECK FREE MEMORY 50610 [173]99 [143] PRINT FILE TO SCREEN 50620 [173]199 [143] CHECK ERROR CHANNEL 50630 [173]249 [143] PRINT COMMAND MENU 50640 [173]349 [143] ADD/CHANGE ENTRY TO INDEX$ AND DISK 50650 [173]399 [143] STORE TO RELATIVE FILE 50660 [173]449 [143] GET RECORD FROM DISK 50670 [173]499 [143] INPUT RECORD FIELDS 50680 [173]699 [143] CORRECT, PRINT OR STORE 50690 [173]799 [143] SEPARATE CITY, STATE, ZIP 50700 [173]844 [143] REMOVE TERMINAL SPACES 50710 [173]864 [143] SEPARATE TERMINAL ZIP CODE 50720 [173]949 [143] BRING NAME TO LAST, FIRST ORDER 50730 [173]999 [143] FIND OLD RECORD / 1ST GET REQUEST 50740 [173]1149 [143] NAME SEARCH LOOP 50750 [173]1999 [143] PRINT NAME & ADDRESS 50760 [173]2099 [143] MULTI LABEL FORMAT & PRINTOUT / DS IS DOUBLE LABLE SPACING 50770 [173]2199 [143] PRINT ENTIRE RECORD 50775 [173]2249 [143] GET LEFT MARGIN SIZE 50780 [173]2299 [143] MAIL LIST PRINT OPTIONS SCREEN 50790 [173]2399 [143] INPUT PRINT COMMANDS 50800 [173]2499 [143] PRINT LIST / 1ST DECODE INDEX STRING 50810 [173]2999 [143] CREATE NEW RECORD 50815 [173]3199 [143] GARBAGE COLLECTION 50820 [173]3499 [143] SORT & STORE INDEX FILE 50830 [173]3899 [143] CLOSING ROUTINES 50840 [173]3999 [143] INPUT TO MAIN MENU 50845 [173]4949 [143] SET GEMINI PRINT MODE 50850 [173]4999 [143] INNITIALIZATION ROUTINES / INDEX$()=FILE INDEX 50860 [173]5199 [143] OPEN INDEX & CHECK IF NEW FILE / NU=CURRENT NUMBER OF FILES 50870 [173]5249 [143] READ INDEX FILE 50875 [173]5345 [143] FIXED VARIABLES DEFINED: 5350-5390 / DS=DOUBLE LABEL SPACING 50880 [173]5346 ML[178]MAX LABEL [195]GTH [173] 80 USED AS MAXIMUM [153]ER LINE [195]GTH IN MM 50885 [173]5347 MF[178]MAX # OF FILES [173]LG[178]MAX FILE SIZE (CHANGE THESE [145]LY [129] [162] DISK) 50890 [173]5348 INDEX FILE [145] DISK NEEDS 1 BLOCK [170] 1 BLOCK [184]E [129] EACH 10 NAMES 50895 [173]5349 STRING FUNCTI[145]: VT$() CREATES VERTICAL TAB, CL$ CLEARS [145]E LINE 50900 [173]5399 [143] PRINT SECOND SCREEN 50905 [173]9999 [143] IF PROGRAM NOT SHORTENED- ESTABLISH RELATIVE FILE 50910 [173]10049 [143] ESTABLISH NOTES SCREEN & SAVE WITH MACHINE LANGUAGE PROGRAMS 50920 [173]10079 [143] ESTABLISH INDEX FILE 50930 [173]48999 [143] LOADER - MACH LANG PGMS 50940 [173]50499 [143] PROGRAM SHORTENING ROUTINE 51000 A "?" MARK CAN BE SUBSTITUTED [129] FIRST NAME & WILL [168] [153] [145] THE LABEL 51005 LAST NAME PRECEEDED BY [174] WILL [168] S[164]RE BUT WILL [153] ADDRESS [145]LY LABEL. 51010 USE '[138] 10' [164] SET [153] MODE [145] A GEMINI [153]ER. 51015 [139] USED WITH MOSTLY AMERICAN ZIP CODES, CHANGE [179]5 [164] [179][177]5 IN LINE 620. 51020 MAXIMUM FILE [195]GTH [175] MAXIMUM NUMBER OF FILES ARE SET IN LINE 5390. 51025 [145]E DISK HOLDS 700 FILES. [172] [153] ROUTINES ARE ALL BETWEEN 2000 & 2245. 51045 . 51050 [172][172][172] ADDRESS BOOK [172][172][172] 51055 . 51060 BY FRANK VAN DEVENTER 51065 . 51070 [164] USE PROGRAM, [148] IT FIRST [164] A BLANK [129]MATTED DISK. [167] [138] PROGRAM 51080 WITH THAT DISK IN THE DISK DRIVE. THE FIRST [138] ESTABLISHES THE FILE [145] 51090 THE DISK [175] TAKES MUCH L[145]GER (4.5 MINUTES) THAN SUBSEQUENT [138]S. THE 51100 PROGRAM MAY BE SH[176]TENED [164] [147] M[176]E QUICKLY [145]CE A FILE IS ESTABLISHED. 51110 JUST ENTER: '[138] 50500' & PROGRAM SH[176]TENS ITSELF [164] LINE 10000.(2[173]7 0FF) 51120 [148] [175] USE THIS SH[176]TER PROGRAM IN PLACE OF THE L[145]GER VERSI[145]. IT USES 51130 LESS MEM[176]Y NEEDED [129] STRING S[164]RAGE [175] IT W[145]'T TRY [164] CREATE A 51140 RELATIVE FILE [145] EVERY [162] DISK IT SEES. [VERS 9[173]15[173]85 C]